#include <stdio.h>
#include <stdlib.h>
//链表中节点的结构
typedef struct Linklist
{
    int elem;
    struct Linklist *next;
}linklist;
//初始化链表的函数
linklist * initlinklist();
//用于输出链表的函数
void display(linklist *p);
int main(void)
{
    //初始化链表（1，2，3，4）
    printf("初始化链表为：\n");
    linklist *p=initlinklist();
    display(p);
    return 0;
}
linklist * initlinklist()
{
    // linklist * p=NULL;//创建头指针
    linklist * Linked_List_pointer = (linklist*)malloc(sizeof(linklist));//创建首元节点
    linklist * head = Linked_List_pointer;//头指针指向首元节点
    for (int i=1; i<5; i++)
    {
        if (i == 0)
        {
            //首元节点先初始化
            //head->elem = i;
            // head->next = NULL;
        }
        
        linklist *node=(linklist*)malloc(sizeof(linklist));
        node->elem=i;
        // node->next=NULL;
        Linked_List_pointer->next=node;
        Linked_List_pointer=Linked_List_pointer->next;
    }
    return head;
}
void display(linklist *p)
{
    linklist* temp=p;//将temp指针重新指向头结点
    //只要temp指针指向的结点的next不是Null，就执行输出语句。
    while (temp)
    {
        //if (temp->elem != 0) 
		printf("%d",temp->elem);
        temp=temp->next;
    };
    printf("\n");
}
